#include <vector>

class Tile;
class Enemy;

class Room 
{
private:
	int difficulty;
	int roomNumber;
	int tileCount;
	std::vector<Tile*> tileSet;
	std::vector<Enemy*> enemySet;

public:
	Room(int difficult, int room);
	~Room(void);

	void AddTile(int tileType, int x, int y, int width, int height, const char* image, int left, int top, int right, int bottom);
	void AddTile(Tile* T);
	void AddEnemy(int ER = 3);
	void AddEnemy(Enemy* e);
	void RemoveEnemy(Enemy* tmp);

	int GetRoomNumber(void) {return roomNumber;}
	int GetDiff(void) {return difficulty;}
	void SetDiff(int num) {difficulty = num;}
	Tile* CurrentTile(int i) {return tileSet[i];}
	int TileCount(void) {return tileCount;}
	std::vector<Enemy*> GetEnemyVec()	{return enemySet;}

	// Bit marker for hallways
	unsigned char Openings;
	enum Open {LEFT = 1 << 0, RIGHT = 1 << 1, UP = 1 << 2, DOWN = 1 << 3};

	bool spawned;
};
